Графики, на которых алгоритм ошибается, здесь все AM(выход) приравнены к AM.

In [50]:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns; sns.set();
new_df = pd.read_csv('false.csv')
%matplotlib inline
new_df.index = new_df['Unnamed: 0'].values
new_df.drop('Unnamed: 0',axis=1,inplace=True)
import warnings
warnings.simplefilter("ignore")
df = pd.read_csv('prepare_data.csv')
df.drop(['Brand','Категория'],axis=1,inplace=True)
df['New_SKU'] = df['Формат'] + '_' + df['SKU']
df.drop(['Формат','SKU'],axis=1,inplace=True)
df['цена'] = df['Сумма']/df['Кол-во уп']

Я заменил proba на вероятнось(чем больше алгоритм уверен в своем предсказание, тем больше вероятность)

In [55]:
for i in new_df.index:
    fig,axes = plt.subplots(1,2,figsize=(18,6))
    sns.lineplot(x=df[df['New_SKU']==i]['Месяц'],y=df[df['New_SKU']==i]['цена'],ax=axes[0])
    sns.lineplot(x=df[df['New_SKU']==i]['Месяц'],y=df[df['New_SKU']==i]['Кол-во уп'],ax=axes[1])
    axes[0].set_title('Цена за продукт')
    axes[1].set_title('Количество проданного продукта')
    fig.suptitle(' '.join(i.split('_')) + ' правильно ' + str(new_df.loc[i,'tru']) + ' предсказывает ' + str(new_df.loc[i,'predict']) \
                 + ' с вероятностью ' + str(int(abs(0.5 - new_df.loc[i,'proba'])*200)) + '%')